#ifndef _TYPELOADER_H_
#define _TYPELOADER_H_

#include <memory>
#include <SEngine/Render/Entity/Model.h>
#include <SERender/Resourses/Texture.h>
#include <SERender/Resourses/Mesh.h>

struct FT_LibraryRec_;
struct FT_FaceRec_;
typedef struct FT_LibraryRec_  *FT_Library;
typedef struct FT_FaceRec_*  FT_Face;

namespace SEngine
{
    struct Font {
        Font(const std::string & path) : filePath(path) {}
        std::string filePath;
    };

    class TTypesLoader 
    {
    public:
        TTypesLoader();
        virtual ~TTypesLoader();
        TTypesLoader & SetFontTTF(Font & font);
        TTypesLoader & SetPixelSize(uint32_t width, uint32_t height);
        void LoadChar(char ch);
        std::unique_ptr<Texture> CreateTypeTexture();
        std::unique_ptr<Mesh> CreateTypeMesh();
    
    private:
        FT_Library m_library{nullptr};
        FT_Face m_face{nullptr};
    
    };
} // namespace SEngine


#endif